# -*- coding:utf-8 -*-
"""
@Author : 审心
@Time : 2023/3/27 14:16
列表工具
"""
from collections import defaultdict
from typing import List, Any, Dict


def list_has_element(list_: list, element) -> bool:
    """
    列表是否包含某元素
    :param list_: 列表
    :param element: 元素
    :return: 是否
    :rtype bool
    """
    for i in range(0, len(list_)):
        if list_[i].__eq__(element):
            return True
    return False


def to_map(data_list: List[Dict[str, Any]], key: str) -> dict[Any, list[Dict[str, Any]]]:
    """
    将列表按照指定的 key 字段进行分组，返回字典类型数据
    :param data_list: 需要分组的列表
    :param key: 分组的字段名
    :return: 字典类型数据，以 key 作为键，值为对应的分组数据
    """
    result = {}
    for item in data_list:
        if item[key] in result:
            result[item[key]].append(item)
        else:
            result[item[key]] = [item]
    return result
